raar.gui
Class RAGProcessMap

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by raar.gui.RAGProcessMap
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable

public class RAGProcessMap
extends javax.swing.JComponent

This class is able to draw processes and connections between them, based on information you provide in an RAAgent class (which models processes and connections). Using mouse dragging you can relocate the processes very easily.

See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
static java.awt.Color BGCOLOR
          The background color.
static boolean DRAW_STRAIGHT_LINE
          This determines whether the connections will be drawn as one line (true) or as _| like forms.
static java.awt.Color RASTERCOLOR
          The background raster color.
 int SNAP
          This determines the raster size of the image; processes will snap every SNAP pixels.
 
Fields inherited from class javax.swing.JComponent
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
RAGProcessMap(RAAgent source, int w, int h)
          Draw a map, based on the specified RAAgent class.
RAGProcessMap(RAAgent source, java.awt.Rectangle bounds)
          Draw a map, with w and h specified in the rectangle
 
Method Summary
 RAAgent getAgent()
          Return the agent.
 java.awt.Dimension getCurrentViewableSize()
          Get the current size that we can see.
 raar.gui.RAAgentSaved getSaveableAgent()
          Get a saveable agent based on the agent currently loaded.
 RAProcess getSelectedProcess()
          Request the currently selected process.
 double getZoomFactor()
          Get zoom factor.
static RAGProcessMap load(java.io.File f)
          Load a process map from a file.
static RAGProcessMap load(java.lang.Object o)
          Load a process map from an object (RAAgentSaved).
 void notifyProcessReplaced(RAProcess oldProc, RAProcess newProc)
          If replaceProcess in agent has been called, call this method to actually show the replacement neatly.
 void paint(java.awt.Graphics g)
          Paint the component.
 void save(java.io.File f)
          Save the map to a file.
 void setAgent(RAAgent agent)
          Use this method to place a new agent in the map.
 void setAgent(RAAgent agent, boolean draw)
          Use this method to place a new agent in the map (specify whether drawing is needed).
 void setImageSize(int w, int h)
          Use this method if you want to change the size of the displayed image.
 void setImageSize(int w, int h, boolean redrawProcesses)
          Use this method if you want to change the size of the displayed image.
 void setZoomFactor(double zoom)
          Set zoom factor.
 java.lang.String toString()
          String representation.
 void update()
          Update the map.
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getAccessibleContext, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, paramString, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update, updateUI
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusBackward, transferFocusDownCycle, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

SNAP

public int SNAP
This determines the raster size of the image; processes will snap every SNAP pixels.


DRAW_STRAIGHT_LINE

public static boolean DRAW_STRAIGHT_LINE
This determines whether the connections will be drawn as one line (true) or as _| like forms. The first one looks more chaotic but makes everything more visible. The second one looks impressive and very neat, yet is not very practical.


BGCOLOR

public static java.awt.Color BGCOLOR
The background color.


RASTERCOLOR

public static java.awt.Color RASTERCOLOR
The background raster color.

Constructor Detail

RAGProcessMap

public RAGProcessMap(RAAgent source,
                     int w,
                     int h)
Draw a map, based on the specified RAAgent class. This drawing may not be sophisticated at all, it is up to the user to drag everything to a nice position.


RAGProcessMap

public RAGProcessMap(RAAgent source,
                     java.awt.Rectangle bounds)
Draw a map, with w and h specified in the rectangle

Method Detail

getSaveableAgent

public raar.gui.RAAgentSaved getSaveableAgent()
                                       throws RAException
Get a saveable agent based on the agent currently loaded.

Throws:
RAException

save

public void save(java.io.File f)
          throws RAException
Save the map to a file.

Throws:
RAException

load

public static RAGProcessMap load(java.lang.Object o)
                          throws RAException
Load a process map from an object (RAAgentSaved).

Throws:
RAException

load

public static RAGProcessMap load(java.io.File f)
                          throws RAException
Load a process map from a file.

Throws:
RAException

getAgent

public RAAgent getAgent()
Return the agent.


setAgent

public void setAgent(RAAgent agent,
                     boolean draw)
Use this method to place a new agent in the map (specify whether drawing is needed).


setAgent

public void setAgent(RAAgent agent)
Use this method to place a new agent in the map.


setImageSize

public void setImageSize(int w,
                         int h)
Use this method if you want to change the size of the displayed image.


setImageSize

public void setImageSize(int w,
                         int h,
                         boolean redrawProcesses)
Use this method if you want to change the size of the displayed image.


update

public void update()
Update the map. Do this when a process has been added, modified or removed in the underlying agent. The processes that existed before (or have been changed) will be neatly drawn at the same location as before. The new processes will however get a quite random location at first.


paint

public void paint(java.awt.Graphics g)
Paint the component.

Overrides:
paint in class javax.swing.JComponent

setZoomFactor

public void setZoomFactor(double zoom)
Set zoom factor.


getZoomFactor

public double getZoomFactor()
Get zoom factor.


getCurrentViewableSize

public java.awt.Dimension getCurrentViewableSize()
Get the current size that we can see.


notifyProcessReplaced

public void notifyProcessReplaced(RAProcess oldProc,
                                  RAProcess newProc)
If replaceProcess in agent has been called, call this method to actually show the replacement neatly.


getSelectedProcess

public RAProcess getSelectedProcess()
Request the currently selected process. Might return null.


toString

public java.lang.String toString()
String representation.

Overrides:
toString in class java.awt.Component